<#assign idTypeName=table.idColumn.javaType.simpleName>
<#assign idPropertyName=table.idColumn.property>
<#-- package -->
package ${domainPackage};

<#-- imports -->
import java.util.*;
<#if table.modelImports??>
    <#list table.modelImports as import>
import ${import};
    </#list>
</#if>
import ${basePackage}.core.<#if table.modelType??>${table.modelType.type}<#else>BaseEntity</#if>;
<#if table.baseColumnList?contains("last_modified_date")>
import ${basePackage}.core.Dateable;
</#if>
import lombok.Data;
<#--BaseColumnList-->
@Data
public class ${table.modelName} implements <#if table.modelType??>${table.modelType.type}<#else>BaseEntity</#if><${idTypeName}><#if table.baseColumnList?contains("last_modified_date")>,Dateable</#if>{
<#-- fields -->
<#list table.filteredColumns as column>
    private ${column.javaType.simpleName} ${column.property};
</#list>
<#if idPropertyName!='id'>

    @Override
    public ${idTypeName} getId() {
        return ${idPropertyName};
    }

    @Override
    public void setId(${idTypeName} ${idPropertyName}) {
        this.${idPropertyName} = ${idPropertyName};
    }
</#if>
}